#pragma once

#include <memory>

#include "protocol.hpp"
#include "dict.hpp"

// 3333333333333333333333333333333333333333333333333333333333333333333333333333333
// class NetCal
// {
// public:
//     NetCal()
//     {

//     }

//     ~NetCal()
//     {

//     }

//     std::shared_ptr<Response> calculator(std::shared_ptr<Request> req)
//     {
//         auto resp = Factory::buildResponse();
//         switch (req->getoper())
//         {
//         case '+':
//             resp->_result = req->getx() + req->gety();
//             break;
//         case '-':
//             resp->_result = req->getx() - req->gety();
//             break;
//         case '*':
//             resp->_result = req->getx() * req->gety();
//             break;
//         case '/':
//             {
//                 if (req->gety() == 0)
//                 {
//                     resp->_code = 1;
//                     resp->_desc = "div zero!";
//                 }
//                 else
//                     resp->_result = req->getx() / req->gety();
//             }
//             break;
//         case '%':
//             {
//                 if (req->gety() == 0)
//                 {
//                     resp->_code = 2;
//                     resp->_desc = "mod zero!";
//                 }
//                 else
//                     resp->_result = req->getx() % req->gety();
//             }
//             break;
//         default:
//             {
//                 resp->_code = 3;
//                 resp->_desc = "illegal operation";
//             }
//             break;
//         }
//         return resp;
//     }
// };

class Netdict
{
public:
    Netdict()
    {
    }

    ~Netdict()
    {

    }

    std::shared_ptr<Response> translate(std::shared_ptr<Request> req)
    {
        Dict dict("./dict.txt");
        auto resp = Factory::buildResponse();
        std::string ret = dict.translate(req->getenglishword());
        if (ret == "None")
        {
            resp->_chinese = "字典中没有这个单词";
        }
        else
        {
            resp->_chinese = ret;
        }
        return resp;
    }    
};

// 3333333333333333333333333333333333333333333333333333333333333333333333333333333
